<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<web_uchet.ViewModels.ViewЗаказ>" %>
 <%@ Import Namespace="Mvc.Validation" %>
 <% web_uchet.Security.ProgramContext MData = ViewData["Master"] as web_uchet.Security.ProgramContext;%>
<div style="float:left; width:50%;">
<%= Html.ValidationSummary("Не удалось изменить заказ. Пожалуйста исправьте следующие ошибки:") %>
<%= Html.HiddenFor(e => e.ИД_Заказа, new {id="ИД_Заказа"}) %>
    <%  Html.BeginForm("Edit", "ViewOrder", FormMethod.Post, new { id = "edit-order-form" });
        {%> 
        <fieldset>
            <legend>Изменение заказа:</legend>
            
            <%if (MData.Roles.Contains(web_uchet.Security.Enums.UserRoleEnum.Администратор))
              { %>
            <p>
                <label for="ManagerID">Менеджер:</label>
                <%= Html.DropDownList("ManagerID")%>
                <%= Html.ValidationMessage("ManagerID", "*")%>
            </p>
            <%} %>
            <p>
                <label for="ClientID">Клиент:</label>
                <%= Html.DropDownList("ClientID")%>
                <%= Html.ValidationMessage("ClientID", "*") %>
            </p>    
            <p>                
                <% Html.RenderPartial("EditorTemplates/DateTimeTemplateViewData_Mask",
                new web_uchet.Views.Shared.TemplateClasses.
                    DateTimeTemplateViewData("Дата_Поступления", "Дата_Поступления", "Дата поступления:", Model.Дата_Поступления)); %>
            </p>               
            <p>                
                <% Html.RenderPartial("EditorTemplates/DateTimeTemplateViewData_Mask",
                new web_uchet.Views.Shared.TemplateClasses.
                    DateTimeTemplateViewData("Дата_Назначения", "Дата_Назначения","Дата назначения:", Model.Дата_Назначения)); %>
            </p>
            <p>                
                <% Html.RenderPartial("EditorTemplates/DateTimeTemplateViewData_Mask",
                new web_uchet.Views.Shared.TemplateClasses.
                    DateTimeTemplateViewData("Дата_Выполнения", "Дата_Выполнения", "Дата выполнения:", Model.Дата_Выполнения)); %>
            </p>
            <p>
                <label for="Описание">Описание:</label>
                <%= Html.TextArea("Описание", Html.Encode(Model.Описание), 5, 30, new { @class = "input-box", id = "Описание" })%>
                <%= Html.ValidationMessage("Описание", "*") %>
            </p>          
            <p>
                <label for="ExecutiveID">Исполнитель:</label>
                <%= Html.DropDownList("ExecutiveID")%>
                <%= Html.ValidationMessage("ExecutiveID", "*") %>
            </p> 
            <p>
                <label for="Цена">Цена:</label>
                <%= Html.TextBox("Цена", Html.Encode(Model.Цена), new { @class = "input-box", id = "Цена" })%>
                <input type="button" class="button" value="Пересчитать цену по услугам" id="btn-recalc-order-cost"/>
                <%= Html.ValidationMessage("Цена", "*") %>
            </p>            
            <p>
                <label for="Скидка">Скидка %:</label>
                <%= Html.TextBoxFor(e => e.Скидка, new { @class = "input-box", id = "Скидка" })%> 
                <%= Html.ValidationMessage("Скидка", "*")%>
            </p>
            <p>
                <label>Цена с учетом скидки:</label>
                <%= Html.TextBoxFor(e => e.Цена_со_скидкой,
                           new { @class = "input-box readonly", id = "Цена_со_скидкой", disabled = "disabled"})%> 
            </p>
            <p>
                <label for="Оплачено">Оплачено:</label>
                <%= Html.TextBoxFor(e => e.Оплачено, new { @class = "input-box", id = "Оплачено" })%>
                <%= Html.ValidationMessage("Оплачено", "*")%>
            </p>
            <p>
                <label>Долг:</label>
                <%= Html.TextBoxFor(e => e.Долг,new { @class = "input-box readonly", id = "Долг", disabled = "disabled" })%> 
                <input type="button" class="button" value="Пересчитать долг, цену по скидке" id="btn-recalc-discount-cost"/>
            </p>
                
            <p>
                <label for="CurrencyID">Валюта:</label>
                <%= Html.DropDownList("CurrencyID")%>
                <%= Html.ValidationMessage("CurrencyID", "*") %>
            </p>        
            <p>
                <label for="Выполнено">Выполнено:</label>
                <%= Html.CheckBox("Выполнено", Model.Выполнено, new {id = "Выполнено" })%>
                <%= Html.ValidationMessage("Выполнено", "*") %>
            </p>            
            <p>
                <label for="Отменен">Отменен:</label>
                <%= Html.CheckBox("Отменен", Model.Отменен, new { id = "Отменен" })%>
                <%= Html.ValidationMessage("Отменен", "*") %>
            </p>
            <p>
            <%if ((bool)ViewData["IsAjaxRequest"])
              { %>
              <input type="submit" value="Сохранить" class="button" id="EditPageAjaxScript"/>
              <script type="text/javascript">
                  jQuery('#edit-order-form').submit(function () {
                      if (jQuery('#Цена').val() == '') ReCalcOrderCost();
                        
                  jQuery('#edit-order-form').validate();
                  if (jQuery('#edit-order-form').valid())
                      DoEditAjaxSubmit();
                  return false;
              });
              function DoEditAjaxSubmit() {
                  jQuery.post('/ViewOrder/Edit/<%=Model.ИД_Заказа.ToString() %>', jQuery('#edit-order-form').serialize(), 
                  function(data) {
                          jQuery("#span-dialog").html(data);
                          jQuery("#dialog").dialog('open');
                          ReloadOrderGrid();
                      });
                  }
              </script>
            <%}
              else
              { %>
                <input type="submit" value="Сохранить" class="button" />
            <%} %>
            </p>
        </fieldset>
    <% } %>
    <%= Html.ClientSideValidation<web_uchet.ViewModels.ViewЗаказ>("edit-order-form")%>   
    <form id='Monkey' style="display :none;"><input type="hidden"/></form>
<%--<div id="CreateClientDialog" title="Добавление клиента"><p><span class="ui-icon ui-icon-circle-check" 
style="float:left; margin:0 7px 50px 0;"></span><span  id="create-Client-span-dialog">
                    <%Html.RenderPartial("CreateClientControl", new web_uchet.Models.IViewКлиент.ViewКлиент(),this.ViewData); %>
                    </span></p></div>--%>
<script type="text/javascript">
    jQuery(document).ready(function() {
        InitFormValidation();
    });

    function InitFormValidation() {
        jQuery.validator.addMethod("FormRules", function(value, element) {
            return !(jQuery('#Отменен:checked').val() != null && jQuery('#Выполнено:checked').val() != null);
        }, "Ошибка в введенных данных");

        jQuery("#Выполнено").rules("add", {
            FormRules: true,
            messages: {
                FormRules: "Заказ не может быть выполнен и отменен одновременно"
            }
        });
        //alert('InitCancelAndExecutedFormValidation worked!');
    }
</script> 
</div>

<div style="float:left; margin-top:40px; width:50%;">
<% Html.RenderPartial("OrderDetailsMultyAction", new web_uchet.JQgridProcess.OrderDetailsPartialViewData() 
   { MasterID = Model.ИД_Заказа, Валюты=ViewData["IEnumCurrencies"] as IEnumerable<web_uchet.Models.Валюта>, 
        Услуги_Компании=ViewData["IEnumServices"] as IEnumerable<web_uchet.ViewModels.ViewУслуга_Компании>}); %>
</div>

<script type="text/javascript">
    jQuery('#btn-recalc-order-cost').click(function () {
        ReCalcOrderCost();
    });
    function ReCalcOrderCost() {
        var Grid = jQuery('#OrderDetailsGrid');
        var IDs = Grid.getDataIDs();
        var Sum = 0;
        for (var i = 0; i < IDs.length; i++) {
            var Data = Grid.getRowData(IDs[i]);

            if (i + 1 < IDs.length)
                if (Data.ИД_Валюты_Услуги != Grid.getRowData(IDs[i + 1]).ИД_Валюты_Услуги)
                    alert('В сумме были разные валюты!');

            Sum = Sum + parseFloat(Data.Цена_Услуги) * parseFloat(Data.Колличество_Услуги);
            //alert(Sum);
        }
        jQuery('#Цена').val(Sum.toString());
    }

    jQuery('#btn-recalc-discount-cost').click(function () {
        ReCalcDicountCost();
    });
    function ReCalcDicountCost() {

        if (jQuery('#Цена').val() && jQuery('#Скидка').val()) {
            var Cost = parseFloat(jQuery('#Цена').val());
            var Discount = parseFloat(jQuery('#Скидка').val());
            var CostWithDiscount = Cost - (Cost * Discount / 100);
            jQuery('#Цена_со_скидкой').val(CostWithDiscount.toString());

            if (jQuery('#Оплачено').val()) {
                var Paid = parseFloat(jQuery('#Оплачено').val());
                var Credit = CostWithDiscount - Paid;
                jQuery('#Долг').val(Credit.toString());
            }
        }
    }
</script>